let {routeMiddleware=[]} = global.gem_config;
//解析中间件
module.exports=function(data){
  try{
    let midd = [];
    data.forEach(res=>{
      if(typeof res == 'string'){
        //开始解析
        let index = res.includes(":")?res.indexOf(":"):res.length;
        let key = res.substring(0,index);
        let fun = loader(routeMiddleware[key]);

        fun || (
            console.log("中间件 "+key+" 不存在")
        )
        //从配置中获取路径并加载模块
        midd.push({
          fun:fun || (()=>{return "中间件不存在"}),
          parameter:res.substring(index+1).split(',').filter(e=>e),
          name:key
        });
      }else if(!Array.isArray(res) && (typeof res)=='object'){
        //这是一个固定的中间件，不需要解析直接查找就行了
        let fun = loader(routeMiddleware[res.name]);
        if(!fun)console.log(res.name,'无此中间件');
        //解析好的
        midd.push({
          fun:fun || (()=>{return "中间件不存在"}),
          parameter:res.parameter,
          name:res.name
        });
      }else if(Array.isArray(res)){
        if(res.length===0)return
        midd.push({
          fun:res[0] || (()=>{return "中间件异常"}),
          parameter:res[1]?res[1].split(',').filter(e=>e):[undefined],
          name:"匿名中间件"
        });
      }else{
        midd.push({
          fun:res,
          parameter:[undefined],
          name:"匿名中间件"
        });
      }
    })
    return midd;
  }catch(e){
    console.log("中间件出现异常，请修复后使用\n"+e);
    console.log(e)
  }

}